6. 输出文件格式说明¶
6.1. relax.json¶
relax.json 为 task = relax 时的输出文件,当 task类型为其他时,该文件不输出。
(1) relax.json 中包含 1*N 个结构体;
(2)每个结构体保存着结构弛豫中每个离子步优化之后的结构信息,具体包含3部分信息:
Atoms 中保存着每个原子的信息,每个Atoms中包含5部分信息:
Element 为原子的元素名;
Fix 为原子是否固定;
Mag 为原子的初始磁矩;
Position 为原子的对应的坐标;
Pot 为原子的赝势信息;
CoordinateType 为坐标类型: Direct 为分数坐标, Cartesian 为笛卡尔坐标;
FixLattice 为晶胞向量是否固定;
Lattice 为晶格常数;
6.2. system.json¶
除 task = frequency 、task = elastic 、task = epsilon外,其余task计算输出system.json文件。
(1) system.json 中包含6个结构体;
(2) AtomInfo 中包含5部分信息:
Atoms 中保存着每个原子的信息;每个Atoms中包含2部分信息:
Element 为对应原子的元素名;
Position 为对应原子的对应的坐标;
CoordinateType 为坐标类型: Direct 为分数坐标, Cartesian 为笛卡尔坐标;
FixLattice 为是否固定晶胞的开关,在structure.as文件的第三行添加Fix标签控制;
Grid 为格点数目,绘制3维格点数据的时候需要使用
Lattice 为晶格常数;
(3) Eigenvalue 中包含3部分信息:
NumberOfBand 为总能带数;
Spin1 和 Spin2 (若考虑自旋)保存着能量本征值,其数据格式相同; 以 Spin1 为例,该结构包含3部分信息:
BandEnergies 中保存着每条能带每个 K点 对应的能量值;
Kpoints 中保存着每个 K点 的分数坐标;
Occupation 中保存着每条能带每个 K点 对应的电子占据值;
(4) Energy 中包含3部分信息:
EFermi 为自洽或最后一步结构弛豫的费米能级的值;
TotalEnergy 为自洽或最后一步结构弛豫的总能的值;
TotalEnergy0 为自洽或最后一步结构弛豫的 sgmia 趋于 0 时近似总能的值;
(5) Force 中包含1部分信息:
ForceOnAtoms 中保存着每个原子对应 XYZ 三个方向上的力的值;
(6) MagInfo 中包含着磁矩的信息;
TotalMagOnAtomsX 给出各原子X方向上的总磁矩,Y,Z同理,该信息输出需在input.in文件中打开io.magProject开关;
TotalMagOnOrbitalX 给出X方向磁矩分布在各轨道的分量,Y, Z同理,该信息输出需在input.in文件中打开io.magProject开关;
(7) Stress 中包含2部分信息:
Direction 中保存了 Total stress 的分量符号;
Total 中保存了在每个Direction分量上 stress 的值;
6.3. dos.json¶
dos.json 为 task = dos 时的输出文件,当 task类型为其他时,该文件不输出。
(1) dos.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的AtomInfo数据;
(3) DosInfo 中包含11部分信息:
DosEnergy 为所计算态密度的能量点的数据;
EFermi 为费米能级值;
EnergyMax 为所计算态密度的最大能量值;
EnergyMin 为所计算态密度的最小能量值;
SpinType 为计算时所设置的磁性类型;
Magnetization 为投影到每个原子上的磁矩分量;
NumberOfDos 为所计算的态密度的所有能量点的数目;
Orbit 为投影轨道信息;
IsProject 为态密度计算时是否打开了投影功能;
Spin1 和 Spin2 保存着态密度相关的数据,其数据格式相同; Spin1 中包含2部分信息:
Dos 为总的态密度的数据;
ProjectDos 包含原子数×轨道数目大小的结构体,每个结构体中包含着3部分信息:
AtomIndex 为当前 Contribution 对应的元素序号,该序号与AtomInfo中的 Atoms 的序号相同;
Contribution 为 AtomIndex 对应原子和 OrbitIndex 对应轨道在每个能量点下的态密度贡献值;
OrbitIndex 为当前 Contribution 对应的轨道序号,该序号与DosInfo中的Orbit的序号相同;
注解
注意:当只有Spin1的时候,Spin1为总的信息 当Spin1和Spin2同时存在的时候,Spin1为自旋向上的信息,Spin2为自旋向下的信息。
6.4. band.json¶
band.json 为 task = band 时的输出文件,当 task类型为其他时,该文件不输出。
(1) 此例为能带反折叠计算的 band.json 文件,包含3个结构体;
(2) AtomInfo 同 system.json 中的 AtomInfo 数据;
(3) BandInfo 中包含12部分信息:
BandGap 为带隙值;
CBM 为导带位置;
VBM 为价带位置;
CoordinatesOfKPoints 为能带计算时K点的分数坐标;
EFermi 为费米能级值;
SpinType 为计算时所设置的磁性类型;
SymmetryKPoints 为能带计算时高对称K点的字母表示;
SymmetryKPointsIndex 为能带计算时高对称K点的起始序号;
IsProject 为能带计算时是否打开了投影功能;
NumberOfband 为所计算的能带的所有能带的数目;
Orbit 为投影轨道信息;
Spin1 和 Spin2 保存着能带相关的数据,其数据格式相同, Spin1 中包含2部分信息:
Band 为总的能带的数据;
ProjectBand 包含原子数×轨道数目大小的结构体,每个结构体中包含着3部分信息:
AtomIndex 为当前 Contribution 对应的元素序号,该序号与AtomInfo中的 Atoms 的序号相同;
Contribution 为 AtomIndex 对应原子和 OrbitIndex 对应轨道在每个能量点下的能带贡献值;
OrbitIndex 为当前 Contribution 对应的轨道序号,该序号与BandInfo中的 Orbit 的序号相同;
(4) UnfoldingBandInfo 中包含8部分信息,除 Spin 部分结构与 BandInfo 不同,其余数据结构均一致:
Spin1 保存着反折叠能带的相关的数据, Spin1 中包含2部分信息:
UnfoldingBand 为总的能带数据;
Weight 为能带的权重值;
注解
注意:当只有Spin1的时候,Spin1为总的信息 当Spin1和Spin2同时存在的时候,Spin1为自旋向上的信息,Spin2为自旋向下的信息。
6.5. rho.json¶
rho.json 为 task = scf 以及 task =relax时的输出文件,当 task类型为其他时,该文件不输出。
(1) rho.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的 AtomInfo 数据;
(3) Rho 中包含信息:
TotalCharge 和 SpinCharge ; TotalCharge 和 SpinCharge 数据格式相同,都表示电荷密度其数据大小为AtomInfo中3个Grid的乘积;
注解
注意:在当只有TotalCharge的时候,TotalCharge为总的电荷密度;当TotalCharge和SpinCharge同时存在的时候,TotalCharge为总的电荷密度,SpinCharge为自旋电荷密度;
6.6. elf.json¶
elf.json 可为 task = elf 和 task = scf 且 io.elf设置为 true 以及 task = relax 且 io.elf设置为 true这 3种 task下的输出文件,当task类型为其他时,该文件不输出。
(1) elf.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的AtomInfo数据;
(3) elf 中包含信息:
TotalELF 和 SpinELF ; TotalELF 和 SpinELF 数据格式相同,都表示电子局域密度的数据,其数据大小为AtomInfo中3个Grid的乘积;
注解
注意:在当只有TotalELF的时候,TotalELF为总的局域电荷密度;当TotalELF和SpinELF同时存在的时候,TotalELF为总的局域电荷密度,SpinELF为自旋局域电荷密度;
6.7. potential.json¶
potential.json 可为 task = potential 和 task = scf 且 io.potential设置为 true 以及 task = relax 且 io.potential设置为 true这3种 task下的输出文件,当 task类型为其他时,该文件不输出。
(1) potential.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的AtomInfo数据;
(3) potential 中包含4部分信息:
TotalElectrostaticPotential 和 SpinElectrostaticPotential ; TotalElectrostaticPotential 和 SpinElectrostaticPotential 数据格式相同,都表示静电势函数的数据,其数据大小为AtomInfo中 3个Grid 的乘积;
TotalLocalPotential 和 SpinLocalPotential ; TotalLocalPotential 和 SpinLocalPotential 数据格式相同,都表示局域势函数的数据,其数据大小为AtomInfo中 3个Grid 的乘积;
注解
注意:potential.type = hartree/total/all,分别保存ElectrostaticPotential/LocalPotential/ElectrostaticPotential & LocalPotential 三种类型的势函数,对应静电势、局域势、静电势和局域势
6.8. pcharge.json¶
pcharge.json 为 task = pcharge 时的输出文件,当 task类型为其他时,该文件不输出。
(1) pcharge.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的 AtomInfo 数据;
(3) Pcharge 在本例中包含1部分信息,为第4条能带的电荷密度,若计算N条能带,Pcharge会写出N部分信息:
BandIndex 和 KpointIndex 分别对应计算能带的序号及计算所用K点;
TotalCharge 表示电荷密度的数据,其数据大小为AtomInfo中 3个Grid 的乘积;
注解
注意:当pcharge.sumK = true时,Pcharge只包含一部分信息,为所有计算的能带的电荷密度之和。
6.9. optical.json¶
optical.json 为 task = scf 且 io.optical = true 时的输出文件,当 task类型为其他时,该文件不输出。
(1) optical.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的 AtomInfo 数据;
(3) OpticalInfo 中包含9部分信息:
6.10. frequency.json¶
frequency.json 为 task = frequency 时的输出文件,当 task类型为其他时,该文件不输出。
(1) frequency.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的 AtomInfo 数据;
(3) FrequencyInfo 中包含2部分信息:
两部分数据对应两种类型的频率,分别为
f
和f/i
;每种频率的信息分为两部分, eigenvalues 和 eigenvectors ,对应频率的本征值和本征向量,本征向量给出
x
、y
、z
、dx
、dy
、dz
6个方向上的分量。
6.11. elastic.json¶
elastic.json 为 task = elastic 时的输出文件,当 task类型为其他时,该文件不输出。
(1) elastic.json 中包含2个结构体;
(2) AtomInfo 同 system.json 中的 AtomInfo 数据;
(3) ElasticInfo 中包含5部分信息:
CrystalSystem 给出体系的晶体类型;
ElasticModulus 数据大小为36,给出弹性模量的数据。
Hill 、 Reuss 和 Voigt 分别给出三种模型下计算出的体积模量和剪切模量的数据,此外 Hill 模型还给出杨氏模量和泊松比。
6.12. neb.json¶
neb.json 为 task = neb 时的输出文件,当 task类型为其他时,该文件不输出。
(1) neb.json 中包含7个结构体;
(2) Distance 给出每两个相邻构型(00与01、01与02...05与06)之间坐标的距离;
(3) Energy 体系总能,共有 image数量 +2 个数据
(4) Force 分为两部分,分别为最大受力和切向力,共有 image数量 个数据
(5) Iteration 给出所有插点结构在优化过程中的最大受力和总能数据,共有 image数量 个数据
(6) RelaxedStructure 给出所有构型在优化完成后的原子和晶胞信息
(7) UnrelaxStructure 给出所有构型优化前的原子和晶胞信息
(8) iniFin 表示是否对初态和末态结构进行自洽计算。
注解
注意:当iniFin = False时,Distance部分不提供00与01及05与06之间的坐标距离,Energy部分数据总数等于image数量。
6.13. phonon.json¶
phonon.json 为 task = phonon 时的输出文件,当 task类型为其他时,该文件不输出。
(1) 此例中phonon.method = dfpt, phonon.type = bandDos, phonon.json 中包含8个结构体;
(2) BandInfo 包含7部分信息,结构与 band.json 文件中 BandInfo 部分相似,
CoordinatesOfQPoints 为计算声子能带时Q点的分数坐标;
NumberOfBand 为计算声子能带时所有能带数目;
NumberOfQPoints 为计算声子能带时高对称Q点的字母表示;
Spin1 为计算声子能带的相关数据;
SpinType 为计算声子能带时设置的自旋类型;
SymmetryQPoints 为声子能带计算时高对称Q点的字母表示;
SymmetryQPointsIndex 为声子能带计算时高对称Q点的起始序号;
(3) DosInfo 包含6部分信息,结构与 dos.json 文件中 DosInfo 部分相似,
DosEnergy 为计算声子态密度时能量点的数据;
EnergyMax 为计算声子态密度的最大能量值;
EnergyMin 为计算声子态密度的最小能量值;
NumberOfDos 为计算声子态密度时所有能量点的数目;
Spin1 为计算声子态密度的相关数据;
SpinType 为计算声子态密度时设置的自旋类型;
(4) EpsilonInfo 包含3部分信息,给出介电常数相关数据,详细解析请见第(10)条。
(5) ForceConstant 分为2部分, ConstantIndex 给出力学常数数组的维度, ConstantValue 为力学常数的数据,数据大小为Index中各维度之乘积。
(6) PrimitiveAtomInfo 分为3部分,给出原胞原子信息。
(7) SupercellAtomInfo 分为3部分,给出超胞原子信息。
(8) UnitAtomInfo 分为3部分,给出单胞原子信息。
(9) phonon 分为20部分
dfptEpsilon 为介电常数的计算开关;
dosRange 为计算声子态密度时能量的范围;
dosResolution 为计算声子态密度的能量间隔;
dosSigma 为计算声子态密度时的展宽;
eigenVectors 为本征向量的开关;
fdDisplacement 为计算声子时原子位移的大小,该参数在fd方法时有效;
iniPhonon 是否提供声子计算的json文件;
isDisplacement 是否有位移;
method 计算声子的方法;
nac 为nac的开关;
primitiveUVW 计算声子能带时是否将超胞还原成原胞;
qpoints 为计算声子能带时Q点的大小;
qpointsCoord 为计算声子能带时Q点的坐标;
qpointsLabel 为计算声子能带时Q点的标签;
qpointsNumber 为计算声子能带时Q点的数目;
qsamping 为计算声子能带时Q点采样的方法;
structureSize 为计算声子时扩胞参数;
thermal 为热力学计算的开关;
thermalRange 为热力学计算的温度范围;
type 为声子计算的任务类型。
(10)当task=phonon时,若打开介电常数或热力学性质计算的开关, phonon.json 结构中会分别写入 EpsilonInfo 和 ThermalInfo 数据,如下图所示:
注解
注意:当phonon.method = fd 时, phonon.json文件会写入Displacements 和 Forceset 两部分数据。
6.14. aimd.json¶
aimd.json 为 task = aimd 时的输出文件,当 task类型为其他时,该文件不输出。
(1) aimd.json 中包含3个结构体;
(2) Energy 包含两部分信息,分别为分子动力学模拟每一步的自由能数据和总能数据;数据大小取决于模拟总步数;
(3) structure 给出分子动力学模拟每一步的原子位置数据;
(4) Temperature 给出分子动力学模拟每一步的温度数据。
6.15. epsilon.json¶
epsilon.json 为 task = epsilon 时的输出文件,当 task类型为其他时,该文件不输出。
(1) epsilon.json 中包含 2 个结构体;
(2) AtomInfo 同 system.json 中的AtomInfo数据;
(3) EpsilonInfo 包含3部分数据:
BornEffectiveCharge 为波恩有效电荷数据;
Epsilon 为介电常数数据,分为电子贡献、离子贡献和总的介电常数;
Piezoelectric 为压电张量的数据,分为电子贡献、离子贡献和总的压电张量。
6.16. bader.json¶
bader.json 为 task = scf且io.bader = true 时的输出文件,当 task类型为其他时,该文件不输出。
(1) bader.json 中包含 2 个结构体;
(2) AtomInfo 同 system.json 中的AtomInfo数据;
(3) BaderInfo 包含3部分数据:
AtomicVolume 为bader体积数据;
Charge 为bader电荷数据;
MinDistance 为最近原子距离。
6.17. polarization.json¶
polarization.json 为 task = polarization 时的输出文件,当 task类型为其他时,该文件不输出。
(1) polarization.json 中包含 5 个结构体;
(2) AtomInfo 同 system.json 中的AtomInfo数据;
(3) Electronic 为电子贡献数据;
(4) Ionic 为离子贡献数据;
(5) Quantum 为极化量子数据;
(6) Total 为总的极化数据;